/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Autogenerated file -- DO NOT EDIT!

// NOLINTNEXTLINE(readability-function-size)
ark::compiler::RuntimeInterface::IntrinsicId AbckitRuntimeAdapterStatic::GetIntrinsicId([[maybe_unused]] std::string_view className,
        [[maybe_unused]] std::string_view methodName, [[maybe_unused]] panda_file::MethodDataAccessor mda) {
% Runtime::intrinsics.select{ |i| i.static && !i.signature.stackrange && !i.is_stub && !i.compiler_only && i.has_impl? && i.need_nullcheck.empty? }.group_by(&:class_name).each do |clazz, intrinsics|
    if (className == "<%= clazz %>") {
%   intrinsics.each do |intrinsic|
        if (methodName == "<%= intrinsic.method_name %>") {
%           types = [intrinsic.signature.ret] + intrinsic.signature.args
%           shorty = types.map { |t| "panda_file::Type::TypeId::" + get_shorty_type(t) }.join(", ")
%           refTypes = types.select { |t|  object_type?(t) }.map { |t| get_object_descriptor(t).inspect }.join(", ")
            if (IsEqual(mda, {<%= shorty %>}, {<%= refTypes %>})) {
                return ark::compiler::RuntimeInterface::IntrinsicId::INTRINSIC_<%= intrinsic.enum_name %>;
            }
            return ark::compiler::RuntimeInterface::IntrinsicId::INVALID;
        }
%       end
        return ark::compiler::RuntimeInterface::IntrinsicId::INVALID;
    }
% end
    return ark::compiler::RuntimeInterface::IntrinsicId::INVALID;
}
